home *** CD-ROM | disk | FTP | other *** search
/ Corel Professional Photos 313: Rainy Nights / Corel Stock Photo Library 2 - 313 - Rainy Nights.iso / utils / setup / corelcd.mst < prev    next >
Text File  |  1994-09-01  |  28KB  |  878 lines

  1. '**************************************************************************
  2. '*           MSSetup Toolkit - Corel Professional Photos Setup            *
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. CONST WS_VISIBLE=&H10000000
  11. CONST WS_BORDER =&H00800000
  12. CONST WS_CLIPCHILDREN =&H02000000
  13. CONST GWL_STYLE =-16
  14. CONST SW_SHOWMAXIMIZED=3
  15.  
  16. DECLARE FUNCTION ShowWindow LIB "user.exe" (hWnd%,iShow%) AS INTEGER
  17. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%,offset%,style&) AS LONG
  18.  
  19. hWnd%=HwndFrame()
  20.  
  21. sti&=SetWindowLong(hWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  22. stj%=ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
  23.  
  24. ''Dialog ID's
  25. CONST WELCOME      = 100
  26. CONST ASKQUIT      = 200
  27. CONST DESTPATH     = 300
  28. CONST EXITFAILURE  = 400
  29. CONST EXITQUIT     = 600
  30. CONST EXITSUCCESS  = 700
  31. CONST ASKQTOUR     = 800
  32. CONST APPHELP      = 900
  33. CONST CUSTINST     = 6200
  34. CONST TOOBIG       = 6300
  35. CONST BADPATH      = 6400
  36. CONST MOSAIC       = 7100
  37. CONST PCDSCSI      = 7200
  38. CONST CDAUDIO      = 7300
  39. CONST VIDEOWARN    = 7500
  40.  
  41. ''Bitmap ID
  42. CONST LOGO         = 1
  43.  
  44. ''File Types
  45. CONST PCDLABFILES    = 1
  46. CONST PCDMOSFILES    = 2
  47. CONST PCDAUDFILES    = 3
  48. CONST PCDSCRFILES    = 4
  49. CONST PCDWALFILES    = 5
  50. CONST PCDQTRFILES    = 6
  51.  
  52. GLOBAL DEST$        ''Default destination directory.
  53. GLOBAL WINDRIVE$    ''Windows drive letter.
  54. GLOBAL MosDir$      ''Location of old mosaic program, if found.
  55. GLOBAL MosFlag$      ''Flag for old mosaic program, if found.
  56. GLOBAL QTRFlag$     ''Flag for QuickTour
  57. GLOBAL MPlrFlag     ''Flag for Media Player 
  58.  
  59. FLAG1$          ="No"      '' Copy flags for
  60. FLAG2$          ="No"      '' DLL files that go
  61. FLAG3$          ="No"      '' into WindowsDir and WindowsSysDir
  62. QTRFlag$        ="NO"
  63.  
  64. ''CustInst list symbol names
  65. GLOBAL PCDLABNEEDS$    ''Option list costs per drive
  66. GLOBAL PCDMOSNEEDS$
  67. GLOBAL PCDAUDNEEDS$
  68. GLOBAL PCDSCRNEEDS$
  69. GLOBAL PCDWALNEEDS$
  70. GLOBAL PCDQTRNEEDS$
  71.  
  72. GLOBAL EXTRACOSTS$  ''List of extra costs to add per drive
  73. GLOBAL BIGLIST$     ''List of option files cost calc results (boolean)
  74.  
  75. ''Dialog list symbol names
  76. GLOBAL CHECKSTATES$
  77. GLOBAL STATUSTEXT$
  78. GLOBAL DRIVETEXT$
  79.  
  80.  
  81. DECLARE SUB AddOptFilesToCopyList (ftype%)
  82. DECLARE SUB RecalcOptFiles (ftype%)
  83. DECLARE SUB RecalcPath
  84. DECLARE SUB SetDriveStatus
  85. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  86. DECLARE FUNCTION VflatdPresent LIB "iniupd.dll" AS INTEGER
  87.  
  88. INIT:
  89.     CUIDLL$ = "mscuistf.dll"            ''custom user interface dll
  90.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  91.  
  92.     SetBitmap CUIDLL$, LOGO
  93.     SetTitle "Corel Professional Photos Setup"
  94.  
  95.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  96.     IF szInf$ = "" THEN
  97.     szInf$ = GetSymbolValue("STF_CWDDIR") + "CORELCD.INF"
  98.     END IF
  99.     ReadInfFile szInf$
  100.  
  101.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  102.     WINDIR$ = GetWindowsDir()
  103.     DEST$ = WINDRIVE$ + ":\CORELCD"
  104.  
  105.     ''CustInst list symbols
  106.     CHECKSTATES$ = "CheckItemsState"
  107.     STATUSTEXT$  = "StatusItemsText"
  108.     DRIVETEXT$   = "DriveStatusText"
  109.     FOR i% = 1 TO 6 STEP 1
  110.     AddListItem CHECKSTATES$, "ON"
  111.     NEXT i%
  112.     FOR i% = 1 TO 6 STEP 1
  113.     AddListItem STATUSTEXT$, ""
  114.     NEXT i%
  115.     FOR i% = 1 TO 7 STEP 1
  116.     AddListItem DRIVETEXT$, ""
  117.     NEXT i%
  118.     ReplaceListItem DRIVETEXT$, 7, DEST$
  119.  
  120.     ''Disk cost list symbols
  121.     PCDLABNEEDS$  = "PcdLabNeeds"
  122.     PCDMOSNEEDS$  = "PcdMosNeeds"
  123.     PCDAUDNEEDS$  = "PcdAudNeeds"
  124.     PCDSCRNEEDS$  = "PcdScrNeeds"
  125.     PCDWALNEEDS$  = "PcdWalNeeds"
  126.     PCDQTRNEEDS$  = "PcdQtrNeeds"
  127.     EXTRACOSTS$ = "ExtraCosts"
  128.     BIGLIST$    = "BigList"
  129.     FOR i% = 1 TO 6 STEP 1
  130.     AddListItem BIGLIST$, ""
  131.     NEXT i%
  132.     FOR i% = 1 TO 26 STEP 1
  133.     AddListItem EXTRACOSTS$, "0"
  134.     NEXT i%
  135.  
  136.     MPlrFlag = DoesFileExist(MakePath(WinDir$, "mplayer.reg"), femExists)
  137.  
  138.     RecalcPath
  139.     SetDriveStatus
  140.  
  141. '$IFDEF DEBUG
  142.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  143. '$ENDIF ''DEBUG
  144.  
  145.  
  146. WELCOME:
  147.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  148.     IF sz$ = "CONTINUE" THEN
  149.     UIPop 1
  150.     ELSE
  151.     GOSUB ASKQUIT
  152.     GOTO WELCOME
  153.     END IF
  154.  
  155.  
  156. CUSTINST:
  157.     sz$ = UIStartDlg(CUIDLL$, CUSTINST, "FCustInstDlgProc", APPHELP, HELPPROC$)
  158.  
  159.     IF sz$ = "CONTINUE" THEN
  160.     ''Install only if it will fit.
  161.     FOR i% = 1 TO 6 STEP 1
  162.         IF GetListItem(BIGLIST$, i%) <> "" THEN
  163.         GOSUB TOOBIG
  164.         GOTO CUSTINST
  165.         END IF
  166.     NEXT i%
  167.     UIPop 1
  168.     GOTO INSTALL
  169.     ELSEIF sz$ = "PATH" THEN
  170.     GOTO GETPATH
  171.     ELSEIF sz$ = "CHK1" THEN
  172.     RecalcOptFiles PCDLABFILES
  173.     SetDriveStatus
  174.     GOTO CUSTINST
  175.     ELSEIF sz$ = "CHK2" THEN
  176.     RecalcOptFiles PCDMOSFILES
  177.     SetDriveStatus
  178.     GOTO CUSTINST
  179.     ELSEIF sz$ = "CHK3" THEN
  180.     RecalcOptFiles PCDAUDFILES
  181.     SetDriveStatus
  182.     GOTO CUSTINST
  183.     ELSEIF sz$ = "CHK4" THEN
  184.     RecalcOptFiles PCDSCRFILES
  185.     SetDriveStatus
  186.     GOTO CUSTINST
  187.     ELSEIF sz$ = "CHK5" THEN
  188.     RecalcOptFiles PCDWALFILES
  189.     SetDriveStatus
  190.     GOTO CUSTINST
  191.     ELSEIF sz$ = "CHK6" THEN
  192.     RecalcOptFiles PCDQTRFILES
  193.     SetDriveStatus
  194.     GOTO CUSTINST
  195. '    ELSEIF sz$ = "BTN2" THEN
  196. '        GOTO PCDMOSFILES
  197. '    ELSEIF sz$ = "BTN3" THEN
  198. '        GOTO PCDAUDFILES
  199. '    ELSEIF sz$ = "BTN4" THEN
  200. '        GOTO PCDSCRFILES
  201. '    ELSEIF sz$ = "BTN5" THEN
  202. '        GOTO PCDWALFILES
  203. '    ELSEIF sz$ = "BTN6" THEN
  204. '        GOTO PCDQTRFILES
  205.     ELSEIF sz$ = "REACTIVATE" THEN
  206.     RecalcPath
  207.     SetDriveStatus
  208.     GOTO CUSTINST
  209.     ELSE
  210.     GOSUB ASKQUIT
  211.     GOTO CUSTINST
  212.     END IF
  213.  
  214.  
  215.  
  216. INSTALL:
  217.     ClearCopyList
  218.     AddOptFilesToCopyList PCDLABFILES
  219.     AddOptFilesToCopyList PCDMOSFILES
  220.     AddOptFilesToCopyList PCDAUDFILES
  221.     AddOptFilesToCopyList PCDSCRFILES
  222.     AddOptFilesToCopyList PCDWALFILES
  223.     AddOptFilesToCopyList PCDQTRFILES
  224.     CreateDir DEST$, cmoNone
  225.     
  226.     IF GetListItem(CHECKSTATES$, PCDLABFILES) = "ON" THEN
  227.      IF DoesIniKeyExist("WIN.INI", "PhotoCD Lab", "Dir") = 1 THEN
  228.          PcdDir$ = GetIniKeyString("WIN.INI", "PhotoCD Lab", "Dir")
  229.          IF DoesFileExist(PcdDir$ + "\PCDSCSI.EXE", femExists) = 1 THEN
  230.          SetSymbolValue "ConfirmTextIn", PcdDir$
  231.          SetSymbolValue "EditFocus", "END"
  232.          sz$ = UIStartDlg(CUIDLL$, PCDSCSI, "FConfirmDlgProc", APPHELP, HELPPROC$)
  233.          IF sz$ = "BACK" THEN
  234.              UIPop 1
  235.              GOTO CUSTINST
  236.          ELSEIF sz$ = "CONTINUE" THEN
  237.              UIPop 1
  238.          END IF
  239.          END IF
  240.      END IF
  241.      IF PcdDir$ <> "" THEN
  242.          CreateIniKeyValue "WIN.INI", "PhotoCD Lab", "Dir", PcdDir$, cmoOverwrite
  243.      ELSE
  244.          CreateIniKeyValue "WIN.INI", "PhotoCD Lab", "Dir", DEST$ + "\PCDLAB", cmoOverwrite
  245.      END IF
  246.     END IF
  247.  
  248.     IF GetListItem(CHECKSTATES$, PCDMOSFILES) = "ON" THEN
  249.      IF MosFlag$ <> "" THEN
  250.          SetSymbolValue "ConfirmTextIn", MosDir$
  251.          SetSymbolValue "EditFocus", "END"
  252.          sz$ = UIStartDlg(CUIDLL$, MOSAIC, "FConfirmDlgProc", APPHELP, HELPPROC$)
  253.          IF sz$ = "BACK" THEN
  254.              UIPop 1
  255.              GOTO CUSTINST
  256.          ELSEIF sz$ = "CONTINUE" THEN
  257.              UIPop 1
  258.          END IF
  259.      ELSEIF MosFlag$ = "" AND MOSDIR$ <> "" THEN
  260.          '' Just sit there for now
  261.      ELSE
  262.          CreateIniKeyValue "WIN.INI", "CorelGraphics4", "Dir", DEST$ + "\MOSAIC\CONFIG", cmoOverwrite
  263.          CreateDir DEST$ + "\MOSAIC\CONFIG", cmoNone
  264.          CreateIniKeyValue DEST$ + "\MOSAIC\CONFIG\CORELAPP.INI", "Config", "ProgramsDir", DEST$ + "\MOSAIC\PROGRAMS", cmoOverwrite
  265.          CreateIniKeyValue DEST$ + "\MOSAIC\CONFIG\CORELAPP.INI", "Config", "CustomDir", DEST$ + "\MOSAIC\CUSTOM", cmoOverwrite
  266.          CreateIniKeyValue DEST$ + "\MOSAIC\CONFIG\CORELAPP.INI", "Config", "MosaicDir", DEST$ + "\MOSAIC\PROGRAMS", cmoOverwrite
  267.          CreateIniKeyValue DEST$ + "\MOSAIC\CONFIG\CORELAPP.INI", "Config", "FiltersDir", DEST$ + "\MOSAIC\PROGRAMS", cmoOverwrite
  268.          CreateIniKeyValue DEST$ + "\MOSAIC\CONFIG\CORELAPP.INI", "Config", "DataDir", DEST$ + "\MOSAIC\PROGRAMS\DATA", cmoOverwrite
  269.      END IF
  270.      END IF
  271.     
  272.     IF GetListItem(CHECKSTATES$, PCDAUDFILES) = "ON" THEN
  273.      IF DoesIniKeyExist("WIN.INI", "CorelSCSI", "CD-Audio") = 1 THEN
  274.          CDAudioDir$ = GetIniKeyString("WIN.INI", "CorelSCSI", "CD-Audio")
  275.          IF DoesFileExist(CDAudioDir$ + "\CD_AUDIO.EXE", femExists) = 1 THEN
  276.          SetSymbolValue "ConfirmTextIn", CDAudioDir$
  277.          SetSymbolValue "EditFocus", "END"
  278.          sz$ = UIStartDlg(CUIDLL$, CDAUDIO, "FConfirmDlgProc", APPHELP, HELPPROC$)
  279.          IF sz$ = "BACK" THEN
  280.              UIPop 1
  281.              GOTO CUSTINST
  282.          ELSEIF sz$ = "CONTINUE" THEN
  283.              UIPop 1
  284.          END IF
  285.          END IF
  286.      END IF
  287.      CreateIniKeyValue "WIN.INI", "CorelSCSI", "CD-Audio", DEST$ + "\PCDAUDIO", cmoOverwrite
  288.     END IF
  289.  
  290.     IF GetListItem(CHECKSTATES$, PCDQTRFILES) = "ON" THEN
  291.       IF VflatdPresent() = 0 THEN
  292.      CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  293.       END IF
  294.       CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  295.       CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  296.       CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "indeov.drv", cmoOverwrite
  297.       CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  298.       IF DoesIniKeyExist (GetWindowsSysDir + "system.ini", "Drivers", "VIDC.RT21") = 0 THEN
  299.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "indeov.drv", cmoOverwrite
  300.       END IF
  301.       CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "indeov.drv", cmoOverwrite
  302.       CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  303.       CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  304.       CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  305.       CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  306.       CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  307.       CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  308.       CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  309.       CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  310.     END IF
  311.  
  312.     CopyFilesInCopyList
  313.  
  314.     InstDrive$=MID$(DEST$,1,2)
  315.     CreateProgmanGroup "Professional Photos", "", cmoNone
  316.     IF GetListItem(CHECKSTATES$, PCDLABFILES) = "ON" THEN
  317.     ShowProgmanGroup "Professional Photos", 1, cmoNone
  318.     CreateProgmanItem "Professional Photos", "PhotoCD Lab", MakePath(DEST$, "pcdlab\pcdscsi.exe "), "", cmoOverwrite
  319.     END IF
  320.  
  321.     IF GetListItem(CHECKSTATES$, PCDMOSFILES) = "ON" THEN
  322.     ShowProgmanGroup "Professional Photos", 1, cmoNone
  323.     IF MosDir$ <> "" THEN
  324.         CreateProgmanItem "Professional Photos", "CorelMOSAIC!", MosDir$ + "\CORELMOS.EXE", "", cmoOverwrite
  325.     ELSE
  326.         CreateProgmanItem "Professional Photos", "CorelMOSAIC!", MakePath(DEST$, "mosaic\programs\corelmos.exe "), "", cmoOverwrite
  327.         CreateIniKeyValue DEST$ + "\MOSAIC\CONFIG\CORELFLT.INI", "ColorPath", "CircuitPath", DEST$ + "\MOSAIC\CUSTOM", cmoOverwrite
  328.         CreateIniKeyValue DEST$ + "\MOSAIC\CONFIG\CORELFLT.INI", "ColorPath", "CurvePath", DEST$ + "\MOSAIC\CUSTOM", cmoOverwrite
  329.         CreateIniKeyValue DEST$ + "\MOSAIC\CONFIG\CORELPRN.INI", "ColorPath", "CircuitPath", DEST$ + "\MOSAIC\CUSTOM", cmoOverwrite
  330.     END IF
  331.     END IF
  332.  
  333.     IF GetListItem(CHECKSTATES$, PCDAUDFILES) = "ON" THEN
  334.     ShowProgmanGroup "Professional Photos", 1, cmoNone
  335.     CreateProgmanItem "Professional Photos", "CD Audio", MakePath(DEST$, "pcdaudio\cd_audio.exe "), "", cmoOverwrite
  336.     END IF
  337.  
  338.     IF GetListItem(CHECKSTATES$, PCDSCRFILES) = "ON" THEN
  339.     ShowProgmanGroup "Professional Photos", 1, cmoNone
  340.     END IF
  341.  
  342.     IF GetListItem(CHECKSTATES$, PCDWALFILES) = "ON" THEN
  343.     ShowProgmanGroup "Professional Photos", 1, cmoNone
  344.     CreateProgmanItem "Professional Photos", "Wallpaper Flipper Configuration", MakePath(GetWindowsDir, "wflipcnf.exe"), "", cmoOverwrite
  345.     END IF
  346.  
  347.     IF GetListItem(CHECKSTATES$, PCDQTRFILES) = "ON" THEN
  348.     ShowProgmanGroup "Professional Photos", 1, cmoNone
  349.     CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite
  350.     CreateProgmanItem "Professional Photos", "Professional Photos QuickTour", GetSymbolValue("STF_SRCDIR")+"utils\cppqtour\qtviewer.exe", "", cmoOverwrite
  351.     END IF
  352.     CreateProgmanItem "Professional Photos", "Getting Started", MakePath(DEST$,"g_start.hlp"), "", cmoOverwrite 
  353.     CreateProgmanItem "Professional Photos", "Artview Screen Saver Help", MakePath(DEST$,"artview.hlp"), "", cmoOverwrite 
  354.     CreateProgmanItem "Professional Photos", "Corel Products Showcase", GetSymbolValue("STF_SRCDIR")+"showcase\show2.exe", "", cmoOverwrite 
  355.  
  356. QUIT:
  357.     ON ERROR GOTO ERRQUIT
  358.  
  359.     IF ERR = 0 THEN
  360.     dlg% = EXITSUCCESS
  361.     ELSEIF ERR = STFQUIT THEN
  362.     dlg% = EXITQUIT
  363.     ELSE
  364.     dlg% = EXITFAILURE
  365.     END IF
  366. QUITL1:
  367.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  368.     IF sz$ = "REACTIVATE" THEN
  369.     GOTO QUITL1
  370.     END IF
  371.     UIPop 1
  372.     IF QTRFlag$ = "YES" AND dlg% = EXITSUCCESS THEN
  373.       displayname$ = GetIniKeyString(WinDir$ + "SYSTEM.INI", "BOOT.DESCRIPTION", "DISPLAY.DRV")
  374.       FOR a% = 1 TO LEN(displayname$) - 4
  375.     checkname$ = MID$(displayname$, a%, 4)
  376.     IF checkname$ = "mach" THEN
  377.     machexist = 1
  378.     end if
  379.       NEXT a%
  380.       if machexist = 1 then
  381.     sz$ = UIStartDlg(CUIDLL$, VIDEOWARN, "FConfirmDlgProc", 0, "")
  382.     UIPop 1
  383.       end if
  384.       IF MPlrFlag <> 1 THEN
  385.     Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  386.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  387.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  388.     Run (GetSymbolValue("STF_SRCDIR")+"utils\setup\profdisp.exe")
  389.       END IF
  390.       sz$ = UIStartDlg(CUIDLL$, ASKQTOUR, "FConfirmDlgProc", 0, "")
  391.     IF sz$ = "CONTINUE" THEN
  392.       UIPop 1
  393.       CHDRIVE GetSymbolValue("STF_SRCDIR")
  394.       CHDIR "\utils\cppqtour"
  395.       Run ("qtviewer.exe")
  396.     ELSE
  397.       UIPop 1
  398.     END IF
  399.     END IF
  400.     END
  401.  
  402. ERRQUIT:
  403.     i% = DoMsgBox("Setup sources were corrupted, call Corel Tech Support", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  404.     END
  405.  
  406.  
  407.  
  408. GETPATH:
  409.     SetSymbolValue "EditTextIn", DEST$
  410.     SetSymbolValue "EditFocus", "END"
  411. GETPATHL1:
  412.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  413.  
  414.     IF sz$ = "CONTINUE" THEN
  415.     olddest$ = DEST$
  416.     DEST$ = GetSymbolValue("EditTextOut")
  417.  
  418.     ''Validate new path.
  419.     IF IsDirWritable(DEST$) = 0 THEN
  420.         GOSUB BADPATH
  421.         GOTO GETPATHL1
  422.     END IF
  423.     UIPop 1
  424.  
  425.     ''Truncate display if too long.
  426.     IF LEN(DEST$) > 23 THEN
  427.         ReplaceListItem DRIVETEXT$, 7, MID$(DEST$, 1, 23)+"..."
  428.     ELSE
  429.         ReplaceListItem DRIVETEXT$, 7, DEST$
  430.     END IF
  431.  
  432.     ''Recalc if path changed.
  433.     IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
  434.         RecalcPath
  435.         SetDriveStatus
  436.     END IF
  437.  
  438.     olddest$ = ""
  439.     GOTO CUSTINST
  440.     ELSEIF sz$ = "REACTIVATE" THEN
  441.     RecalcPath
  442.     SetDriveStatus
  443.     GOTO GETPATHL1
  444.     ELSEIF sz$ = "EXIT" THEN
  445.     GOSUB ASKQUIT
  446.     GOTO GETPATHL1
  447.     ELSE
  448.     UIPop 1
  449.     GOTO CUSTINST
  450.     END IF
  451.  
  452.  
  453.  
  454. 'PCDMOSFILES:
  455. '    SetSymbolValue "RadioDefault", OPT1OPT$
  456. 'OPT1L1:
  457. '    sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  458. '    newopt$ = GetSymbolValue("ButtonChecked")
  459. '
  460. '    IF sz$ = "CONTINUE" THEN
  461. '        UIPop 1
  462. '        IF newopt$ <> OPT1OPT$ THEN
  463. '            OPT1OPT$ = newopt$
  464. '           RecalcOptFiles PCDMOSFILES
  465. '           SetDriveStatus
  466. '       END IF
  467. '       newopt$ = ""
  468. '        GOTO CUSTINST
  469. '    ELSEIF sz$ = "REACTIVATE" THEN
  470. '        RecalcPath
  471. '        SetDriveStatus
  472. '        GOTO OPT1L1
  473. '    ELSEIF sz$ = "EXIT" THEN
  474. '        GOSUB ASKQUIT
  475. '        GOTO OPT1L1
  476. '    ELSE
  477. '        UIPop 1
  478. '        newopt$ = ""
  479. '        GOTO CUSTINST
  480. '    END IF
  481. '
  482.  
  483.  
  484. 'PCDAUDFILES:
  485. '    SetSymbolValue "RadioDefault", OPT2OPT$
  486. 'OPT2L1:
  487. '    sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  488. '    newopt$ = GetSymbolValue("ButtonChecked")
  489. '
  490. '    IF sz$ = "CONTINUE" THEN
  491. '        UIPop 1
  492. '        IF newopt$ <> OPT2OPT$ THEN
  493. '            OPT2OPT$ = newopt$
  494. '            RecalcOptFiles PCDAUDFILES
  495. '            SetDriveStatus
  496. '        END IF
  497. '        newopt$ = ""
  498. '        GOTO CUSTINST
  499. '    ELSEIF sz$ = "REACTIVATE" THEN
  500. '        RecalcPath
  501. '        SetDriveStatus
  502. '        GOTO OPT2L1
  503. '    ELSEIF sz$ = "EXIT" THEN
  504. '        GOSUB ASKQUIT
  505. '        GOTO OPT2L1
  506. '    ELSE
  507. '        UIPop 1
  508. '        newopt$ = ""
  509. '        GOTO CUSTINST
  510. '    END IF
  511.  
  512.  
  513.  
  514. 'PCDSCRFILES:
  515. '    SetSymbolValue "RadioDefault", OPT3OPT$
  516. 'OPT3L1:
  517. '    sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  518. '    newopt$ = GetSymbolValue("ButtonChecked")
  519. '
  520. '    IF sz$ = "CONTINUE" THEN
  521. '       UIPop 1
  522. '        IF newopt$ <> OPT3OPT$ THEN
  523. '            OPT3OPT$ = newopt$
  524. '            RecalcOptFiles PCDSCRFILES
  525. '            SetDriveStatus
  526. '        END IF
  527. '        newopt$ = ""
  528. '        GOTO CUSTINST
  529. '    ELSEIF sz$ = "REACTIVATE" THEN
  530. '        RecalcPath
  531. '        SetDriveStatus
  532. '        GOTO OPT3L1
  533. '    ELSEIF sz$ = "EXIT" THEN
  534. '        GOSUB ASKQUIT
  535. '        GOTO OPT3L1
  536. '    ELSE
  537. '        UIPop 1
  538. '        newopt$ = ""
  539. '        GOTO CUSTINST
  540. '    END IF
  541.  
  542.  
  543.  
  544. 'PCDWALFILES:
  545. '    SetSymbolValue "RadioDefault", OPT4OPT$
  546. 'OPT4L1:
  547. '    sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  548. '    newopt$ = GetSymbolValue("ButtonChecked")
  549. '
  550. '    IF sz$ = "CONTINUE" THEN
  551. '        UIPop 1
  552. '        IF newopt$ <> OPT4OPT$ THEN
  553. '            OPT4OPT$ = newopt$
  554. '            RecalcOptFiles PCDWALFILES
  555. '            SetDriveStatus
  556. '        END IF
  557. '        newopt$ = ""
  558. '        GOTO CUSTINST
  559. '    ELSEIF sz$ = "REACTIVATE" THEN
  560. '        RecalcPath
  561. '        SetDriveStatus
  562. '        GOTO OPT4L1
  563. '    ELSEIF sz$ = "EXIT" THEN
  564. '        GOSUB ASKQUIT
  565. '        GOTO OPT4L1
  566. '    ELSE
  567. '        UIPop 1
  568. '        newopt$ = ""
  569. '        GOTO CUSTINST
  570. '    END IF
  571.  
  572.  
  573. 'PCDQTRFILES:
  574. '    SetSymbolValue "RadioDefault", OPT5OPT$
  575. 'OPT5L1:
  576. '    sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  577. '    newopt$ = GetSymbolValue("ButtonChecked")
  578. '
  579. '    IF sz$ = "CONTINUE" THEN
  580. '        UIPop 1
  581. '        IF newopt$ <> OPT5OPT$ THEN
  582. '            OPT5OPT$ = newopt$
  583. '            RecalcOptFiles PCDQTRFILES
  584. '            SetDriveStatus
  585. '        END IF
  586. '        newopt$ = ""
  587. '        GOTO CUSTINST
  588. '    ELSEIF sz$ = "REACTIVATE" THEN
  589. '        RecalcPath
  590. '        SetDriveStatus
  591. '        GOTO OPT5L1
  592. '    ELSEIF sz$ = "EXIT" THEN
  593. '        GOSUB ASKQUIT
  594. '        GOTO OPT5L1
  595. '    ELSE
  596. '        UIPop 1
  597. '        newopt$ = ""
  598. '        GOTO CUSTINST
  599. '    END IF
  600.  
  601. TOOBIG:
  602.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  603.     IF sz$ = "REACTIVATE" THEN
  604.     RecalcPath
  605.     SetDriveStatus
  606.     GOTO TOOBIG
  607.     END IF
  608.     UIPop 1
  609.     RETURN
  610.  
  611.  
  612.  
  613. BADPATH:
  614.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  615.     IF sz$ = "REACTIVATE" THEN
  616.     RecalcPath
  617.     SetDriveStatus
  618.     GOTO BADPATH
  619.     END IF
  620.     UIPop 1
  621.     RETURN
  622.  
  623.  
  624.  
  625. ASKQUIT:
  626.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  627.  
  628.     IF sz$ = "EXIT" THEN
  629.     UIPopAll
  630.     ERROR STFQUIT
  631.     ELSEIF sz$ = "REACTIVATE" THEN
  632.     GOTO ASKQUIT
  633.     ELSE
  634.     UIPop 1
  635.     END IF
  636.     RETURN
  637.  
  638.  
  639.  
  640. '**
  641. '** Purpose:
  642. '**     Adds the specified option files to the copy list.
  643. '** Arguments:
  644. '**     ftype%  - type of files to add, one of the following:
  645. '**             PCDLABFILES, PCDAUDFILES, PCDMOSFILES, PCDSCRFILES, PCDWALFILES
  646. '** Returns:
  647. '**     none.
  648. '*************************************************************************
  649. SUB AddOptFilesToCopyList (ftype%) STATIC
  650.  
  651.     IF GetListItem(CHECKSTATES$, ftype%) = "ON" THEN
  652.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  653.     WinDirLen = LEN(GetWindowsDir)-1
  654.     WinDir$ = MID$(GetWindowsDir,1,WinDirLen)
  655.     InstDrive$ = MID$(DEST$,1,2)
  656.     IF ftype% = PCDLABFILES THEN
  657.         AddSectionFilesToCopyList "PcdLabFiles", SrcDir$, DEST$ + "\PCDLAB"
  658.         FLAG1$="Yes"
  659.         FLAG2$="Yes"
  660.         FLAG3$="Yes"
  661.     ELSEIF ftype% = PCDMOSFILES THEN
  662.      IF DoesIniKeyExist("WIN.INI", "CorelGraphics4", "Dir") = 1 THEN
  663.          CorelAppDir$ = GetIniKeyString("WIN.INI", "CorelGraphics4", "Dir")
  664.          MosDir$ = GetIniKeyString(CorelAppDir$ + "\CORELAPP.INI", "Config", "ProgramsDir")
  665.          IF MosDir$ <> "" THEN
  666.            IF DoesFileExist(MosDir$ + "\CORELMOS.EXE", femExists) = 1 THEN
  667.          MosFlag$ = "Yes"
  668.            ELSE
  669.          MosFlag$ = ""
  670.            END IF
  671.            AddSectionFilesToCopyList "PcdMosFiles", SrcDir$, MosDir$
  672.            AddSectionFilesToCopyList "PcdMosUtils", SrcDir$, MosDir$
  673.          ELSE
  674.           AddSectionFilesToCopyList "PcdMosFiles", SrcDir$, DEST$ + "\MOSAIC\PROGRAMS"
  675.           AddSectionFilesToCopyList "PcdMosUtils", SrcDir$, DEST$ + "\MOSAIC\CUSTOM"
  676.           AddSectionFilesToCopyList "PcdMosInis", SrcDir$, DEST$ + "\MOSAIC\CONFIG"
  677.           AddSectionFilesToCopyList "PcdMosData", SrcDir$, DEST$ + "\MOSAIC\PROGRAMS\DATA"
  678.          END IF 
  679.      ELSE 
  680.           AddSectionFilesToCopyList "PcdMosFiles", SrcDir$, DEST$ + "\MOSAIC\PROGRAMS"
  681.           AddSectionFilesToCopyList "PcdMosUtils", SrcDir$, DEST$ + "\MOSAIC\CUSTOM"
  682.           AddSectionFilesToCopyList "PcdMosInis", SrcDir$, DEST$ + "\MOSAIC\CONFIG"
  683.           AddSectionFilesToCopyList "PcdMosData", SrcDir$, DEST$ + "\MOSAIC\PROGRAMS\DATA"
  684.      END IF
  685.         FLAG1$="Yes"
  686.         FLAG3$="Yes"
  687.     ELSEIF ftype% = PCDAUDFILES THEN
  688.         AddSectionFilesToCopyList "PcdAudFiles", SrcDir$, DEST$ + "\PCDAUDIO"
  689.     ELSEIF ftype% = PCDSCRFILES THEN
  690.         AddSectionFilesToCopyList "PcdScrFiles", SrcDir$, GetWindowsDir
  691.         FLAG3$="Yes"
  692.     ELSEIF ftype% = PCDWALFILES THEN
  693.         AddSectionFilesToCopyList "PcdWalFiles", SrcDir$, GetWindowsDir
  694.     ELSEIF ftype% = PCDQTRFILES THEN
  695.         AddSectionFilesToCopyList "PcdQtrFiles", SrcDir$, GetWindowsDir
  696.         AddSectionFilesToCopyList "PcdQtrSysFiles", SrcDir$, GetWindowsSysDir
  697.         QtrFlag$="YES"
  698.     END IF
  699.     IF FLAG1$="Yes" THEN
  700.         CreateIniKeyValue "WIN.INI", "Extensions", "PCD", DEST$ + "\PCDLAB\PCDSCSI.EXE ^.PCD", cmoNone
  701.         AddSectionFilesToCopyList "PcdDllFiles", SrcDir$, GetWindowsSysDir
  702.         IF DoesFileExist(GetWindowsDir + "PCDLIB.DLL", femExists) =1 THEN
  703.         RemoveFile GetWindowsDir + "PCDLIB.DLL", cmoNone
  704.         END IF
  705.         IF DoesFileExist(GetWindowsDir + "PCDXTIF.DLL", femExists) =1 THEN
  706.         RemoveFile GetWindowsDir + "PCDXTIF.DLL", cmoNone
  707.         END IF
  708.         IF DoesFileExist(GetWindowsDir + "PCDXEPS.DLL", femExists) =1 THEN
  709.         RemoveFile GetWindowsDir + "PCDXEPS.DLL", cmoNone
  710.         END IF
  711.         IF DoesFileExist(GetWindowsDir + "PCDXPCX.DLL", femExists) =1 THEN
  712.         RemoveFile GetWindowsDir + "PCDXPCX.DLL", cmoNone
  713.         END IF
  714.         IF DoesFileExist(GetWindowsDir + "PCDXBMP.DLL", femExists) =1 THEN
  715.         RemoveFile GetWindowsDir + "PCDXBMP.DLL", cmoNone
  716.         END IF
  717.     END IF
  718.     IF FLAG2$="Yes" THEN
  719.         AddSectionFilesToCopyList "PcdCtlFile", SrcDir$, GetWindowsSysDir
  720.     END IF
  721.     IF FLAG3$="Yes" THEN
  722.         AddSectionFilesToCopyList "PcdDllFile", SrcDir$, GetWindowsSysDir
  723.     END IF
  724.         AddSectionFilesToCopyList "PcdReadMe", SrcDir$, DEST$
  725.     FLAG1$="No"
  726.     FLAG2$="No"
  727.     FLAG3$="No"
  728.     SrcDir$ = ""
  729.     END IF
  730. END SUB
  731.  
  732. '**
  733. '** Purpose:
  734. '**     Recalculates disk space for the given option files and sets
  735. '**     the status info symbol "StatusItemsText".
  736. '** Arguments:
  737. '**     ftype% - type of files to add, one of the following:
  738. '**             PCDLABFILES, PCDMOSFILES, PCDAUDFILES, PCDSCRFILES, PCDWALFILES, PCDQTRFILES
  739. '** Returns:
  740. '**     none.
  741. '*************************************************************************
  742. SUB RecalcOptFiles (ftype%) STATIC
  743.     CursorSave% = ShowWaitCursor()
  744.     ClearCopyList
  745.     AddOptFilesToCopyList ftype%
  746.  
  747.     fExtra% = 0
  748.     IF ftype% = PCDLABFILES THEN
  749.     ListSym$ = PCDLABNEEDS$
  750. '       IF GetListItem(CHECKSTATES$, PCDLABFILES) = "ON" THEN
  751.     ''Add extra cost to Windows drive for ini/progman, etc.
  752. '        ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
  753. '        ReplaceListItem EXTRACOSTS$, ndrive%, "0"
  754. '        fExtra% = 1
  755. '       END IF
  756.     ELSEIF ftype% = PCDMOSFILES THEN
  757.     ListSym$ = PCDMOSNEEDS$
  758.     ELSEIF ftype% = PCDAUDFILES THEN
  759.     ListSym$ = PCDAUDNEEDS$
  760.     ELSEIF ftype% = PCDSCRFILES THEN
  761.     ListSym$ = PCDSCRNEEDS$
  762.     ELSEIF ftype% = PCDWALFILES THEN
  763.     ListSym$ = PCDWALNEEDS$
  764.     ELSEIF ftype% = PCDQTRFILES THEN
  765.     ListSym$ = PCDQTRNEEDS$
  766.     IF QTRFlag$ = "YES" THEN
  767.     QTRFlag$ = "NO"
  768.     END IF
  769.     END IF
  770.  
  771.     StillNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "")
  772.  
  773.     cost& = 0
  774.     FOR i% = 1 TO 26 STEP 1
  775.     cost&  = cost& + VAL(GetListItem(ListSym$, i%))
  776.     NEXT i%
  777.     ReplaceListItem STATUSTEXT$, ftype%, STR$(cost& / 1024) + " K"
  778.  
  779.     IF StillNeed& > 0 THEN
  780.     ReplaceListItem BIGLIST$, ftype%, "YES"
  781.     ELSE
  782.     ReplaceListItem BIGLIST$, ftype%, ""
  783.     END IF
  784.  
  785. '    IF fExtra% THEN
  786. '        ReplaceListItem EXTRACOSTS$, ndrive%, ""
  787. '    END IF
  788.     RestoreCursor CursorSave%
  789.     ListSym$ = ""
  790. END SUB
  791.  
  792.  
  793. '**
  794. '** Purpose:
  795. '**     Recalculates disk space and sets option status info according
  796. '**     to the current destination path.
  797. '** Arguments:
  798. '**     none.
  799. '** Returns:
  800. '**     none.
  801. '*************************************************************************
  802. SUB RecalcPath STATIC
  803.  
  804.     CursorSave% = ShowWaitCursor()
  805.  
  806.     RecalcOptFiles PCDLABFILES
  807.     RecalcOptFiles PCDMOSFILES
  808.     RecalcOptFiles PCDAUDFILES
  809.     RecalcOptFiles PCDSCRFILES
  810.     RecalcOptFiles PCDWALFILES
  811.     RecalcOptFiles PCDQTRFILES
  812.  
  813.     RestoreCursor CursorSave%
  814. END SUB
  815.  
  816.  
  817. '**
  818. '** Purpose:
  819. '**     Sets drive status info according to latest disk space calcs.
  820. '** Arguments:
  821. '**     none.
  822. '** Returns:
  823. '**     none.
  824. '*************************************************************************
  825. SUB SetDriveStatus STATIC
  826.  
  827.     drive$ = MID$(DEST$, 1, 1)
  828.     ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
  829.     cost& = VAL(GetListItem(PCDLABNEEDS$, ndrive%))+VAL(GetListItem(PCDMOSNEEDS$, ndrive%))+VAL(GetListItem(PCDAUDNEEDS$, ndrive%))+VAL(GetListItem(PCDSCRNEEDS$, ndrive%))+VAL(GetListItem(PCDWALNEEDS$, ndrive%))+VAL(GetListItem(PCDQTRNEEDS$, ndrive%))
  830.     free& = GetFreeSpaceForDrive(drive$)
  831.     ReplaceListItem DRIVETEXT$, 1, drive$ + ":"
  832.     ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K"
  833.     ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K"
  834.                 
  835. '    IF drive$ = WINDRIVE$ THEN
  836. '        ReplaceListItem DRIVETEXT$, 4, ""
  837. '        ReplaceListItem DRIVETEXT$, 5, ""
  838. '        ReplaceListItem DRIVETEXT$, 6, ""
  839. '    ELSE
  840. '        ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
  841. '        cost&=VAL(GetListItem(PCDLABNEEDS$, ndrive%))+VAL(GetListItem(PCDMOSNEEDS$, ndrive%))+VAL(GetListItem(PCDAUDNEEDS$, ndrive%))+VAL(GetListItem(PCDSCRNEEDS$, ndrive%))+VAL(GetListItem(PCDWALNEEDS$, ndrive%))+VAL(GetListItem(PCDQTRNEEDS$, ndrive%))
  842. '        IF cost& = 0 THEN
  843. '            ReplaceListItem DRIVETEXT$, 4, ""
  844. '            ReplaceListItem DRIVETEXT$, 5, ""
  845. '            ReplaceListItem DRIVETEXT$, 6, ""
  846. '        ELSE
  847. '            free& = GetFreeSpaceForDrive(WINDRIVE$)
  848. '            ReplaceListItem DRIVETEXT$, 4, WINDRIVE$ + ":"
  849. '            ReplaceListItem DRIVETEXT$, 5, STR$(cost& / 1024) + " K"
  850. '            ReplaceListItem DRIVETEXT$, 6, STR$(free& / 1024) + " K"
  851. '        END IF
  852. '    END IF
  853. END SUB
  854.  
  855.  
  856. '**
  857. '** Purpose:
  858. '**     Appends a file name to the end of a directory path,
  859. '**     inserting a backslash character as needed.
  860. '** Arguments:
  861. '**     szDir$  - full directory path (with optional ending "\")
  862. '**     szFile$ - filename to append to directory
  863. '** Returns:
  864. '**     Resulting fully qualified path name.
  865. '*************************************************************************
  866. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  867.     IF szDir$ = "" THEN
  868.     MakePath = szFile$
  869.     ELSEIF szFile$ = "" THEN
  870.     MakePath = szDir$
  871.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  872.     MakePath = szDir$ + szFile$
  873.     ELSE
  874.     MakePath = szDir$ + "\" + szFile$
  875.     END IF
  876. END FUNCTION
  877.  
  878.